package com.tencent.sr.iris.activity.restapi.task;

import com.tencent.sr.iris.activity.interfaces.client.task.IrisOperateBoardClient;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardStatisticsRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.OperateBoardThirdRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.SpecialStageListsRequest;
import com.tencent.sr.iris.activity.interfaces.request.operate.UnJoinTaskRequest;
import com.tencent.sr.iris.activity.interfaces.response.group.AdvisorBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.GroupTaskPaginationResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardCommissionResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardFirstOrderResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardInviteResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardSprintResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateBoardStatisticsResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateSecondBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateThirdBoardResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.SpecialStageListsResponse;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.UnJoinTaskResponse;
import com.tencent.sr.iris.activity.service.task.OperateBoardService;
import com.tencent.sr.rmall.common.primitive.HttpResult;
import com.tencent.sr.rmall.common.request.PaginationRequest;
import com.tencent.sr.rmall.common.response.PaginationResponse;
import io.swagger.annotations.Api;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Api(tags = "运营-团长任务看板", value = "运营视角-团长任务看板相关接口")
@RestController
@RequestMapping(value = {"/api/v1/iris/iris-activity-core-service/task/operate"})
public class OperateBoardController implements IrisOperateBoardClient {

    @Resource
    private OperateBoardService operateBoardService;

    @Override
    public HttpResult<PaginationResponse<OperateBoardInviteResponse>> queryOperateBoardInvite(
            PaginationRequest<OperateBoardRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateBoardInvite(request));
    }

    @Override
    public HttpResult<PaginationResponse<OperateBoardSprintResponse>> queryOperateBoardSprint(
            PaginationRequest<OperateBoardRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateBoardSprint(request));
    }

    @Override
    public HttpResult<PaginationResponse<OperateBoardCommissionResponse>> queryOperateBoardCommission(
            PaginationRequest<OperateBoardRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateBoardCommission(request));
    }

    @Override
    public HttpResult<PaginationResponse<OperateBoardFirstOrderResponse>> queryOperateFirstOrder(
            PaginationRequest<OperateBoardRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateFirstOrder(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardResponse>> queryOperateBoard(
            PaginationRequest<AdvisorGroupTaskRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateBoard(request));
    }

    @Override
    public HttpResult<GroupTaskPaginationResponse<OperateSecondBoardResponse>> queryOperateSecondBoard(
            PaginationRequest<OperateBoardRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateSecondBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<OperateThirdBoardResponse>> queryOperateThirdBoard(
            PaginationRequest<OperateBoardThirdRequest> request) {
        return HttpResult.succ(operateBoardService.queryOperateThirdBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<UnJoinTaskResponse>> listUnJoinTaskLeader(
            PaginationRequest<UnJoinTaskRequest> request) {
        return HttpResult.succ(operateBoardService.listUnJoinTaskLeader(request));
    }

    @Override
    public HttpResult<OperateBoardStatisticsResponse> operateBoardStatistics(
            OperateBoardStatisticsRequest request) {
        return HttpResult.succ(operateBoardService.operateBoardStatistics(request));
    }

    @Override
    public HttpResult<List<SpecialStageListsResponse>> taskGroupSpecialStageLists(
            SpecialStageListsRequest request) {
        return HttpResult.succ(operateBoardService.taskGroupSpecialStageLists(request));
    }

}
